package com.hyperion.blog.service;

import com.hyperion.blog.dao.pojo.SysUser;
import com.hyperion.blog.vo.params.LoginParam;
import org.springframework.transaction.annotation.Transactional;

/**
 * @author Hyperion
 */
@Transactional(rollbackFor = Exception.class)
public interface SSOService {

    /**
     * 检查 token 的正确
     *
     * @param token 用户加密信息
     * @return 通过 token 返回SysUser
     */
    SysUser checkToken(String token);

    /**
     * 用户注册
     *
     * @param loginParam 用户注册信息
     * @return 用户加密信息
     */
    String register(LoginParam loginParam);

    /**
     * 用户登录
     *
     * @param loginParam 登陆数据
     * @return 登陆结果
     */
    String login(LoginParam loginParam);

    /**
     * 用户退出登录
     *
     * @param token 用户加密数据
     */
    void logout(String token);
}
